/**
 * 初始化基站管理详情对话框
 */
var StationInfoDlg = {
    stationInfoData : {},
    validateFields: {
        lac: {
            validators: {
                notEmpty: {
                    message: 'lac不能为空'
                },
                stringLength: {  
                    max: 10,
                    message: 'lac最大长度不能超过10'
                }
            }
        },
        ci: {
            validators: {
                notEmpty: {
                    message: 'ci不能为空'
                },
                stringLength: {  
                    max: 10,
                    message: 'ci最大长度不能超过10'
                }
            }
        },
        cellName: {
            validators: {
                notEmpty: {
                    message: '小区名称不能为空'
                },
                stringLength: {  
                    max: 20,
                    message: '小区名称最大长度不能超过20'
                }
            }
        },
        lon: {
            validators: {
                notEmpty: {
                    message: '经度不能为空'
                },
                regexp: {
                      regexp: /^[\-\+]?(0?\d{1,2}\.\d{1,5}|1[0-7]?\d{1}\.\d{1,5}|180\.0{1,5})$/,
                     message: '经度的范围在0-180之间，且必须输入1到5位小数'
                }
            }
        },
        lat: {
            validators: {
                notEmpty: {
                    message: '纬度不能为空'
                },
                regexp: {
                      regexp: /^[\-\+]?([0-8]?\d{1}\.\d{1,5}|90\.0{1,5})$/,
                     message: '纬度的范围在0-90之间，且必须输入1到5位小数'
                }
            }
        }
    }
};

/**
 * 清除数据
 */
StationInfoDlg.clearData = function() {
    this.stationInfoData = {};
}

/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
StationInfoDlg.set = function(key, val) {
    this.stationInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
    return this;
}

/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
StationInfoDlg.get = function(key) {
    return $("#" + key).val();
}

/**
 * 关闭此对话框
 */
StationInfoDlg.close = function() {
    parent.layer.close(window.parent.Station.layerIndex);
}

/**
 * 收集数据
 */
StationInfoDlg.collectData = function() {
    this.set('cityName').set('districtName').set('lac').set('ci').set('cellName').set('lon').set('lat');
}

/**
 * 提交添加
 */
StationInfoDlg.addSubmit = function() {

    this.clearData();
    this.collectData();

    if (!this.validate()) {
        return;
    }
    
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/station/add", function(data){
        Feng.success("添加成功!");
        window.parent.Station.table.refresh();
        StationInfoDlg.close();
    },function(data){
        Feng.error("添加失败!" + data.responseJSON.message + "!");
    });
    ajax.set(this.stationInfoData);
    ajax.start();
}

/**
 * 提交修改
 */
StationInfoDlg.editSubmit = function() {

    this.clearData();
    this.collectData();

    if (!this.validate()) {
        return;
    }

    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/station/update", function(data){
        Feng.success("修改成功!");
        window.parent.Station.table.refresh();
        StationInfoDlg.close();
    },function(data){
        Feng.error("修改失败!" + data.responseJSON.message + "!");
    });
    ajax.set(this.stationInfoData);
    ajax.start();
}

//初始化区县
function initDistrict(json){
    var html = ""; 
    var city =  $("#cityName").val();
    for (var key in json[city]) {
        html+="<option value='"+json[city][key]+"'>"+json[city][key]+"</option>";
    }
    $("#districtName").html(html);
}

/**
 * 验证数据是否为空
 */
StationInfoDlg.validate = function () {
    $('#stationInfoForm').data("bootstrapValidator").resetForm();
    $('#stationInfoForm').bootstrapValidator('validate');
    return $("#stationInfoForm").data('bootstrapValidator').isValid();
}

$(function() {
    var cityDistrictJson = $("#cityDistrictJson").val();
    if(cityDistrictJson != null && cityDistrictJson != ""){
        cityDistrictJson = cityDistrictJson.replace(/'/g, '"');
        cityDistrictJson = $.parseJSON(cityDistrictJson);
        var html = ""; 
        for (var key in cityDistrictJson) {
            html+="<option value='"+key+"'>"+key+"</option>";
        }
        $("#cityName").html(html);
        initDistrict(cityDistrictJson);
    }
    var cityHide = $("#cityHide").val();
    if(cityHide != null && cityHide != ""){
        $("#cityName").val(cityHide);
        initDistrict(cityDistrictJson);
    }
    var districtHide = $("#districtHide").val();
    if(districtHide != null && districtHide != ""){
        $("#districtName").val(districtHide);
    }
    Feng.initValidator("stationInfoForm", StationInfoDlg.validateFields);
    //当地市改变时重新聚焦
    $("#cityName").change( function() {
        initDistrict(cityDistrictJson);
    });
});
